package org.jiuling.aliyun.sms.model.enums;

/**
 * 审批状态枚举
 * @author 紫灵
 * @date 2023年02月11日 23时28分14秒
 */
public enum AuditStatusEnum {

    /** 审核中 */
    AUDIT_STATE_INIT(0,"审核中"),
    /** 审核通过 */
    AUDIT_STATE_PASS(1,"审核通过"),
    /** 审核未通过，请在返回参数Reason中查看审核未通过原因 */
    AUDIT_STATE_NOT_PASS(2,"审核未通过，请在返回参数Reason中查看审核未通过原因"),
    /** 取消审核 */
    AUDIT_STATE_CANCEL(0,"取消审核");

    /** 状态代码 */
    private final int code;
    /** 信息 */
    private final String msg;

    AuditStatusEnum(int code,String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public int getCode() {
        return code;
    }

    /**
     * 获取审批状态模型
     * @return 审批状态模型
     */
    public AuditStatusModel getAuditStatusModel(){
        return new AuditStatusEnum.AuditStatusModel(this);
    }

    /**
     * 审批状态枚举
     */
    public static class AuditStatusModel{

        /** 状态代码 */
        private final int code;
        /** 信息 */
        private final String msg;

        public AuditStatusModel(AuditStatusEnum auditStatusEnum) {
            this.msg = auditStatusEnum.getMsg();
            this.code = auditStatusEnum.getCode();
        }

        public String getMsg() {
            return msg;
        }

        public int getCode() {
            return code;
        }
    }
}
